Le Secret Santa est une tradition de Noël lors de laquelle les membres d'un groupe s'offrent des cadeaux.
Les noms de tous les participants sont inscrits sur des bulletins. Chaque participant se voit alors attribuer le nom d'un autre participant par le biais d'un tirage au sort. On espère qu'aucun de ces participants ne tire son propre nom : le cas échéant, on procède à un nouveau tirage.
Exercice
Compléter la fonction derangement_alea ci-dessous qui prend en argument un entier n et renvoie un dérangement aléatoire de taille n. Pour cela, on continuera de générer une permutation aléatoire jusqu'à ce que celle-ci soit sans point fixe.
def derangement_alea(n):
derangement = False
while not derangement :
p = ...
derangement = ...
return p
On peut alors utiliser la fonction secret_santa ci-dessous pour déterminer qui offrira un cadeau à qui.
def secret_santa(L):
d = derangement_alea(len(L))
for i in range(len(L)) :
print(L[i], "offre un cadeau à", L[d[i]])
L = ["Catherine", "Claire", "Evgény", "Hélène", "Jason", "Julie"]
secret_santa(L)
Source : https://lesmanuelslibres.region-academique-idf.frTélécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/mathematiques-terminale-specialite ou directement le fichier ZIPSous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0